Здесь исходники (src файлы) для rotat на трефоре.

Сначала редактируйте в корне у себя .trfrc
В строке, где определён компилятор с трефора должно стоять

TREFOR=treforifc %t . 1

(другие похожие строки можно закомментировать решёткой #)

Здесь ifc означает intel fortran compiler, но такой трефор будет правильно работать и для других компиляторов
с фортрана, например, для gfortran. Для интеля (т.е. ifort или ifx) нужно иметь строки фортрана не больше 132
позиций, для современного стандарта фортрана строка может быть гораздо длинней, у неё как бы нет ограничений.
Но gfortran будет правильно работать, если ему тоже задавать ограничение 132 позиции опцией
-ffixed-line-length-132
(для современного стандарта пишут -ffixed-line-length-none или -ffixed-line-length-0)

Более старый фортран имел всего 72 позиции в строке. Для таких компиляторов нужно в .trfrc взять:

TREFOR=trefor %t . 1

После git clone из
git@hub.mos.ru:sblinnikov/rotatmos.git
(если раньше не клонировали)
или git pull (если уже есть склонированная рабочая директория)

делайте здесь:

 cd ayudin/Rotat4Timofej/src

 cp grid.inc.sample grid.inc
 cp inputSeb.dat.sample inputSeb.dat

-- и grid.inc и inputSeb.dat можно редактировать, но пока берите без изменений.
Такие файлы не заталкивают в гит, так как они могут каждый день меняться и плодить лишние версии,
в гите храним образцы -- sаmple файлы.

После этого, если есть интель ifx, смотрим

  make -f ifcRotat.mak
  make -f ifcRotat.mak shyudinrhoSrc

и пускаем
 shyudinrhoSrc.exe
который даёт результаты очень похожие на shyudinrho.exe из директории уровнем выше, где у нас smallRotat.mak
для чисто фортранных исходников

Этот exe скажет

for rho01==rho02 put irho0max=1 in grid.inc
-- поскольку АВ Юдин задал такую задачу Тимофею с одним значением центральной плотности.
Поменяем irho0max на 1 и снова сделаем
 make -f ifcRotat.mak shyudinrhoSrc
(потом можно много значений rho0 набирать, если надо будет, меняя irho0max и граничные значения rho0)

Пускаем shyudinrhoSrc.exe, нажимая ввод, где у него паузы, получаем всякие файлы f.dat, *out, *res.
Файл phirho0000.res можно рисовать. Делаем

  make -f ifcRotat.mak plot

пускаем

  plot2rot.exe phirho0000.res

получаем картинку типа pgplot.png (см. почту)


Если потом хотим проверить на gfortran

  make -f gfcRotat.mak
  make -f gfcRotat.mak clean
  make -f gfcRotat.mak cleanall
  make -f gfcRotat.mak shyudinrhoSrc

  shyudinrhoSrc.exe

и т.д.

Код plot2rot.trf хорош как раз для перехода от сферических к цилиндрическим координатам.
В plotrot.inc определяется, сколько точек мы хотим иметь в цилиндрических координатах.

В узле

%_fillarray_fillInput_RcylZ

происходит пересчёт:

FROM Phirthet interpolate to phiRcylZ on a grid of Rcyl and Z.

В текущей версии используются сплайны в узле

%_fillarray_fillInput_RcylZ_spline:

но можно пробовать и простую линейную интерполяцию, если в 215 строке кода plot2rot.trf подвинуть двоеточие у требования lin, т.е. заменить
         <*lin : find Phi for point i,j linearly interpolating from
                 Phirthet at radius,theta *>;
на
         <*lin: find Phi for point i,j linearly interpolating from
                 Phirthet at radius,theta *>;

А spline, наоборот, закрыть, т.е. отодвинуть в 221 строке "spline:" сделать "spline :" или "spline*" и т.п.

Внесто lin с линейной интерполяцией можно и любую другую написать, например, по Рябенькому...

Таким путём любые физические величины можем иметь на сетке Rcyl и Z.






